<?php
/**
 * 系统数据缓存处理类
 *
 * @author 窦子滨 <zibin_5257@163.com>
 *
 */
class CacheModel{
    /**
     * 获取用户信息数据缓存，如果不存在则创建
     *@var array S('userinfo_'.$user_name)
     *
     * @access public
     */
    public function get_userinfo($user_name){
        //判断缓存是否已经存在
        if(S('userinfo_'.$user_name)){
            //存在则直接返回文件缓存中的信息
            return S("userinfo_{$user_name}");
        }else{  //未缓存则调用处理方法
            //写入用户信息缓存
            return $this->set_userinfo($user_name);
        }
    }
    /**
     * 写入用户信息缓存
     * @access private
     *
     * if $kind=='null' 则销毁指定的缓存
     */
    public function set_userinfo($user_name,$kind=''){
        if(is_null($kind)){
            S("userinfo_{$user_name}",NULL);
        }else{
            $User=M('User');
            //获取用户信息
            $user_info=$User->where("user_name='{$user_name}'")->find();
            if(!isset($user_info)){
                return null;
            }else{
                //写入用户信息缓存
                S("userinfo_{$user_name}",$user_info);
                return $user_info;
            }
        }
        
    }

    /**
     * 获取用户的权限缓存
     * @access public
     *
     * @var array S('qx_list_'.$qx_id)
     */
    public function get_quanxian($qx_id){
        //判断该权限组缓存是否存在
        if(S('qx_list_'.$qx_id)){
            //如果存在该权限组的缓存，则直接返回
            return S('qx_list_'.$qx_id);
        }else{
            return $this->set_quanxian($qx_id);
        }
    }

    /**
     * 写入权限组权限到缓存
     *
     * @access public
     *
     * 当$kind=='null' 时，销毁该缓存
     */
    public function set_quanxian($qx_id,$kind=''){
        if(is_null($kind)){
            S("qx_list_{$qx_id}",NULL);
        }else{
            $Quanxian=M('Quanxian');
            $qx_list=$Quanxian->where("qx_id={$qx_id}")->find();
            //当权限组不存在时直接返回null
            if(!isset($qx_list)){
                return null;
            }else{
                //存在则写入缓存，并且返回缓存信息列表
                S("qx_list_{$qx_id}",$qx_list);
                return $qx_list;
            }
        }
    }
        
}
?>
